package com.yijiaw.dao;

import com.yijiaw.domain.Product;

import java.util.Set;

import org.skyway.spring.util.dao.JpaDao;

import org.springframework.dao.DataAccessException;

/**
 * DAO to manage Product entities.
 * 
 */
public interface ProductDAO extends JpaDao<Product> {

	/**
	 * JPQL Query - findProductByPrimaryKey
	 *
	 */
	public Product findProductByPrimaryKey(Integer id) throws DataAccessException;

	/**
	 * JPQL Query - findProductByPrimaryKey
	 *
	 */
	public Product findProductByPrimaryKey(Integer id, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findAllProducts
	 *
	 */
	public Set<Product> findAllProducts() throws DataAccessException;

	/**
	 * JPQL Query - findAllProducts
	 *
	 */
	public Set<Product> findAllProducts(int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findProductByImage
	 *
	 */
	public Set<Product> findProductByImage(String image) throws DataAccessException;

	/**
	 * JPQL Query - findProductByImage
	 *
	 */
	public Set<Product> findProductByImage(String image, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findProductByRemark
	 *
	 */
	public Set<Product> findProductByRemark(String remark) throws DataAccessException;

	/**
	 * JPQL Query - findProductByRemark
	 *
	 */
	public Set<Product> findProductByRemark(String remark, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findProductByImageContaining
	 *
	 */
	public Set<Product> findProductByImageContaining(String image_1) throws DataAccessException;

	/**
	 * JPQL Query - findProductByImageContaining
	 *
	 */
	public Set<Product> findProductByImageContaining(String image_1, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findProductByBigImage
	 *
	 */
	public Set<Product> findProductByBigImage(String bigImage) throws DataAccessException;

	/**
	 * JPQL Query - findProductByBigImage
	 *
	 */
	public Set<Product> findProductByBigImage(String bigImage, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findProductByName
	 *
	 */
	public Set<Product> findProductByName(String name) throws DataAccessException;

	/**
	 * JPQL Query - findProductByName
	 *
	 */
	public Set<Product> findProductByName(String name, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findProductById
	 *
	 */
	public Product findProductById(Integer id_1) throws DataAccessException;

	/**
	 * JPQL Query - findProductById
	 *
	 */
	public Product findProductById(Integer id_1, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findProductByBigImageContaining
	 *
	 */
	public Set<Product> findProductByBigImageContaining(String bigImage_1) throws DataAccessException;

	/**
	 * JPQL Query - findProductByBigImageContaining
	 *
	 */
	public Set<Product> findProductByBigImageContaining(String bigImage_1, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findProductByNameContaining
	 *
	 */
	public Set<Product> findProductByNameContaining(String name_1) throws DataAccessException;

	/**
	 * JPQL Query - findProductByNameContaining
	 *
	 */
	public Set<Product> findProductByNameContaining(String name_1, int startResult, int maxRows) throws DataAccessException;

}